package com.aphrodite.image;

import javax.microedition.lcdui.Image;

public class ImageUtil3 {

	/**
	 * 
	 * @param image
	 * @param nDim
	 *            >256 brightens the mask area
	 * @param x
	 * @param y
	 * @param width
	 * @param height
	 * @return
	 */
//	public static Image dimImage(Image image, int nDim, int x, int y, int width, int height) {
//		int[] src = ImageUtil.getImageRGB(image, image.getWidth(), image.getHeight());
//		for (int i = 0; i < height; i++) {
//			for (int j = 0; j < width; j++) {
//
//			}
//		}
//		int[] dst = new int[image.getWidth() * image.getHeight()];
//		for (int i = 0; i < image.getHeight(); i++) {
//			for (int j = 0; j < image.getWidth(); j++) {
//				int nColorPixel = src[i * image.getWidth() + j];
//				// if (isMasked(src, image.getWidth(), i, j)) {
//				int nRed = ImageUtil.getRedComponent(nColorPixel);
//				int nGreen = ImageUtil.getGreenComponent(nColorPixel);
//				int nBlue = ImageUtil.getBlueComponent(nColorPixel);
//				nRed = Math.max(Byte.MIN_VALUE, Math.min(Byte.MAX_VALUE, (nRed * nDim) >> 8));
//				nGreen = Math.max(Byte.MIN_VALUE, Math.min(Byte.MAX_VALUE, (nGreen * nDim) >> 8));
//				nBlue = Math.max(Byte.MIN_VALUE, Math.min(Byte.MAX_VALUE, (nBlue * nDim) >> 8));
//				dst[i * image.getWidth() + j] = ImageUtil.toRgb((byte) nRed, (byte) nGreen, (byte) nBlue);
//				// } else {
//				// dst[i * image.getWidth() + j] = nColorPixel;
//				// }
//			}
//		}
//		return Image.createRGBImage(dst, image.getWidth(), image.getHeight(), false);
//		// super.setOutput(rgbOutput);
//
//	}

	public static boolean isMasked(int[] data, int width, int nRow, int nCol) {
		return (data[nRow * width + nCol] & 0xff000000) == 0;
	}

	/**
	 * Mask the given pixel.
	 * 
	 * @param nRow
	 *            row of pixel
	 * @param nCol
	 *            column of pixel
	 */
	public void setMask(int[] data, int width, int nRow, int nCol) {
		data[nRow * width + nCol] &= 0x00ffffff;
	}

	/**
	 * Unmask the given pixel.
	 * 
	 * @param nRow
	 *            row of pixel
	 * @param nCol
	 *            column of pixel
	 */
	public void unsetMask(int[] data, int width, int nRow, int nCol) {
		data[nRow * width + nCol] |= 0xff000000;

	}

}
